package com.xiaomi.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;

//-- 预警规则配置表（JSON格式存储）
//CREATE TABLE `rule_config` (
//                               `rule_id` INT AUTO_INCREMENT COMMENT '规则ID（主键）',
//                               `rule_code` TINYINT NOT NULL COMMENT '规则唯一编码',-- 1:电压差报警，2:电流差报警
//                               `rule_name` VARCHAR(128) NOT NULL COMMENT '规则名称',
//                               `battery_type` VARCHAR(64 )NOT NULL COMMENT '适用电池类型',
//                               `condition_json` JSON NOT NULL COMMENT '规则条件（JSON格式）',
//    -- condition_json 示例
//#     {
//#   "expression": "Mx - Mi",
//#   "thresholds": [
//#     {"min": 5.0, "level": 0},
//#     {"min": 3.0, "level": 1},
//#     {"min": 1.0, "level": 2},
//#     {"min": 0.6, "level": 3},
//#     {"min": 0.2, "level": 4}
//#   ]
//# }
//                               `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
//                               `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
//                               PRIMARY KEY (`rule_id`),
//                               UNIQUE KEY `uk_rule_code` (`rule_code`) -- 确保规则编码唯一
//) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预警规则配置表';
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Rule implements Serializable {
    private Long ruleId;//规则id
    private Integer ruleCode;//1:电压差报警，2:电流差报警
    private String ruleName;//规则名称
    private String batteryType;//电池类型
    private String conditionJson;//规则条件（json格式）
    private LocalDateTime createTime;//创建时间
    private LocalDateTime updateTime;//更新时间
}
